package org.scub.foundation.egicom.client.spring.mvc.controller;

import org.springframework.stereotype.Controller;

/**
 * Contrôleur gérant un moteur de recherche et l'affichage des contacts.
 * @author Julie Jageneau
 */

@Controller
public class ListFournisseursController {

//    /** Mapper Dozer */
//    private MapperDozerBean mapperDozerBean;
//
//    /** Services permettant de gérer des contacts */
//    private FournisseurService contactService;
//
//    /** URL de la page successView */
//    private String successView;
//
//    /** Nom du model */
//    private String commandName;
//
//    /** URL de la page formView */
//    private String formView;
//
//    
//    /**
//     * Initialise la page.
//     * (un FournisseurCriteriasModel pour le champ de recherche et la liste de tous les contacts)
//     * @param model
//     * @return la page contenant le formulaire
//     */
//    @RequestMapping(value = "pages/list_contacts", method = RequestMethod.GET)
//    public String initView(final Model model) {
//        
//        // Récupération de tous les contacts
//        List<FournisseurDto> listFournisseursDto = contactService.getAllFournisseurs();
//        List<FournisseurModel> listFournisseurs = mapperDozerBean.mapList(listFournisseursDto, FournisseurModel.class);
//
//        for (int i = 0; i < listFournisseurs.size(); i++) {
//            List<String> listTel = new ArrayList<String>();
//            for (TelephoneDto telephoneDto : listFournisseursDto.get(i).getTelephones()) {
//                listTel.add(telephoneDto.getValue().getNumero());
//            }
//
//            listFournisseurs.get(i).setTelephones(listTel);
//        }
//        
//        // Ajout de la liste de contacts à afficher 
//        model.addAttribute("listFournisseurs", listFournisseurs);
//        
//        // Ajout du FournisseurCriteriasModel pour le mapper avec le champs de recherche
//        final FournisseurCriteriasModel contactCriteriasModel = new FournisseurCriteriasModel();
//        model.addAttribute(commandName, contactCriteriasModel);
//        return formView;
//    }
//
//
//    /**
//     * Récupère la valeur du champ de recherche puis affiche la liste de contacts correspondante.
//     * @param contactCriteriasModel Model de critères de recherche
//     * @param result résultat du validateur
//     * @return la page de redirection
//     */
//    @RequestMapping(value = "pages/list_contacts", method = RequestMethod.POST)
//    public String searchFournisseurs(FournisseurCriteriasModel contactCriteriasModel, BindingResult result, final Model model) {
//        // Recherche des contacts correspondants au critère de recherche via contactService
//        FournisseurCriteresRechercheDto criteria = mapperDozerBean.map(contactCriteriasModel, FournisseurCriteresRechercheDto.class);
//        RemotePagingCriteriasDto<FournisseurCriteresRechercheDto> criteriaFournisseurs = new RemotePagingCriteriasDto<>(criteria, 0, 10);
//        List<FournisseurDto> listFournisseursDto = contactService.getFournisseursByCriteria(criteriaFournisseurs).getListResults();
//        List<FournisseurModel> listFournisseurs = mapperDozerBean.mapList(listFournisseursDto, FournisseurModel.class);
//
//        for (int i = 0; i < listFournisseurs.size(); i++) {
//            List<String> listTel = new ArrayList<String>();
//            for (TelephoneDto telephoneDto : listFournisseursDto.get(i).getTelephones()) {
//                listTel.add(telephoneDto.getValue().getNumero());
//            }
//
//            listFournisseurs.get(i).setTelephones(listTel);
//        }
//
//        // Ajout de la liste de contacts à afficher
//        model.addAttribute("listFournisseurs", listFournisseurs);
//
//        return successView;
//    }
//
//
//    /**
//     * Setter de contactService
//     * @param contactService nouveau contactService
//     */
//    public void setFournisseurService(FournisseurService contactService) {
//        this.contactService = contactService;
//    }
//
//    /**
//     * Setter de mapperDozerBean
//     * @param mapperDozerBean nouveau mapperDozerBean
//     */
//    public void setMapperDozerBean(MapperDozerBean mapperDozerBean) {
//        this.mapperDozerBean = mapperDozerBean;
//    }
//
//    /**
//     * Setter de successView
//     * @param successView nouvealle successView
//     */
//    public void setSuccessView(String successView) {
//        this.successView = successView;
//    }
//
//    /**
//     * Setter de commandName
//     * @param commandName nouveau commandName
//     */
//    public void setCommandName(String commandName) {
//        this.commandName = commandName;
//    }
//
//    /**
//     * Setter de formView
//     * @param formView nouveau formView
//     */
//    public void setFormView(String formView) {
//        this.formView = formView;
//    }

}
